<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    //对象：一个具体的事物，一种复杂的数据类型， 包括属性和方法
    //属性：对象的特征，用变量描述
    //方法：对象的行为（功能），用函数（方法）描述
    //创建对象：用字面量创建对象 在{}中描述对象
    let obj1 = {}   //空对象
    console.log(obj1);//
    console.log(typeof obj1);// object对象
    let obj2 = {
        //属性  属性名：值,多个属性之间用逗号隔开
        userName:'admin',
        password:'123',
        //方法
        login:function(){
            console.log('登录成功');
        }
    };
    //访问对象
    //对象.变量名 或对象['变量名'] 访问对象的属性
    console.log(obj2.userName);
    console.log(obj2['password']);
    //对象.方法名() 或对象['方法名']() 调用对象的方法
    obj2.login();
    obj2['login']();
    console.log(',,,,,,,,,,,');
    //创建对象：用构造函数创建对象
    //构造对象：一种特殊的函数，通过关键new调用这个函数能构造出一个对象
    //step1:定义构造函数，一般将构造函数名的首字母大写
    //step2:使用关键字new构造函数对象
    function Stu(name,sex,id){
        //this关键字：这里
        this.name = name; //把传入的实参name传递给当前对象中的属性name
        this.sex = sex;
        this.id = id;
        this.show = function(){
            console.log('我叫：'+this.name);
        };
    }
    //关键字new
    let student1 = new Stu('Lihua','男',123);
    let student2 = new Stu('tom','女',456);
    let student3 = new Stu('lily','女',99);
    student1.show();
    student2.show();
    student3.show();
    //创建对象：用Object()创建对象
    let obj3 = new  Object(); //构造空对象
    //添加属性和行为
    student1.show();
    obj3.name = 'root';
    obj3.psd = '123';
    obj3.login = function(){
        //模板字符：`${变量名}`
        console.log(`${obj3.name}登陆成功`);
    };
    //访问对象
    obj3.login();
    console.log(',,,,,,,,,,,');
    //遍历对象for...in
    //用字面量创建对象，对象中有title,date,author属性和read()方法
    let news ={
        title:'xxx塌方了,,,',
        date:'2024年10月28日',
        author:'狗仔',
        read:function(){
            console.log('阅读新闻'+this.title);
        }
    };
    news.read();
    for(let temp in news){
        console.log(temp); //遍历出对象中属性的名字
        if(typeof news[temp]==='function'){
            news[temp]();
        }else{
            console.log(news[temp]);//获取出对象中属性的值
        }
    }
    console.log(',,,,,,,,,,,');
    //Math对象：不用实例化
    let num = Math.floor(-3.12);//向下取整
    console.log(num);
    num = Math.random(); //取0-1之间的随机数
    console.log(num);

</script>
</html>